Project 1 - Due Tue Sep 10 at 23:00
Reading
- The course policies page gives an overview of projects, and the collaboration section has a detailed description of how you may collaborate on the projects (in short: you can work with one partner per week, but you should not collaborate except to answer high-level questions with anyone else).
- Course Intro Lecture slides and notebook
- Lab 01
- Python Intro Lecture slides and notebook (You should be able to start this project after finishing lab 1, but material from this lecture may also be helpful.)
- Our CS 111 Code Style Guide describes rules for Python coding style that you should follow.
- The Turtle Functions Reference has a
quick summary of all of the
turtle
andturtleBeads
functions you will need for the scene task. - The Wavesynth Functions Reference has a
quick summary of all of the
wavesynth
functions you will need for the music task. - Think Python, Chapter 1, Think Python, Chapter 2, and Think Python, Chapter 3 (just section 3.1).
- If you prefer an audio format, our podcast The Path to Programming has episodes for this week on What is Programming?, Learning Strategies, and Problem-Solving Strategies.
Tasks
The instructions for each task:
- Task 0: How to Ask Questions — Familiarize yourself with our mechanism for asking questions about the class and the projects. Note: this task is not graded.
-
Task 1: Custom Scene — Learn how to use
turtle
graphics to draw a picture. This task is an alternate with thewavesynthTune
task: you may choose to do one or the other, but you do not have to do both. For this task, having a partner is optional but recommended. -
Task 2: Custom Tune — Learn how to use
wavesynth
audio to create a tune. This task is an alternate with theturtleScene
task: you may choose to do one or the other, but you do not have to do both. For this task, having a partner is optional but recommended. - Task 3: Bug Hunt — Improve your understanding of types and operators by fixing some problems in a broken math practice program. For this task, having a partner is optional but recommended.
About this Project
This project can give you practice with basic Python interactive programs
as well as with creating images with the turtle
and turtleBeads
modules, and creating music with the wavesynth
module. You will be
ready to start any task after the first lab, but may want to complete
most of the weekly exercises first to make sure you're well-prepared.
This week, you must choose either the "Custom Scene" or "Custom Tune" task, and you must complete, "Bug Hunt" in addition to one of those. We strongly recommend that you complete all of the tasks each week if you are planning to study further in computer science.
If you want to find a partner to work with for this project, use this Google Sheet to do so.
Notes
- As usual, we recommend that you do the exercises for this week first.
- Remember that the "extra" goals in each task rubric are not worth any points. Focus only on the "core" goals for your first submission.
- You can submit each task multiple times until you're happy with the result, and see feedback on each submission almost immediately.
- Reminder: Collaboration and honor code: you can talk with other individuals and teams about high-level problem-solving strategies, and about code, but you must understand all the code that you submit: you cannot simply submit someone else's solution.
- If you are not going to be able to get everything done before the deadline, you may still submit it during the revision period.
- Follow the practices discussed in our CS111 Code Style Guide.
- If you are stuck, consult the Project01 FAQ — it covers many common issues students encounter when working on this project.
- To access the starter code and to submit each task, you will use the Potluck server. We will go over how to do this during Lab 1.
- When you're done with the tasks follow the submission instructions below to submit your project.
Time Estimate
To help you plan how long you need to spend on this project, we have some guidelines based on how long students spent on these tasks last semester (please fill out your time estimates to help students in future semesters). For new tasks, these numbers are just estimates.
When you've been working on a task for about 1 hours, you should evaluate whether you are making efficient progress, and make use of some of the class resources available to you, like help-room hours or office hours. If you've been working on one task for 2.5 hours and still have a ways to go, you should definitely get some help with it.
The entire project will probably take you something like 3–7 hours of programming, plus another half hour to hour of reading, although some students take more or less time than that.
How to turn in this Project
If you do the turtle scene task you will take a screenshot of your scene, which you will submit in addition to your code.
- For each team, one screenshot should be uploaded to this shared
google drive folder:
- Take a screenshot of your graphics scene (screenshot instructions here).
- Rename your screenshot with a short, unique descriptive name
that begins with your CS account names.
For example,
ww16_astracks_underwaterMonkey.jpg
. - Drag your properly named screenshot into the shared google drive folder by Tue Sep 10 at 23:00.
Similarly, if you do the wavesynth tune task you should save the .wav file produced by your code using the saveTrack
function and submit that.
-
For each team, one
.wav
file should be uploaded to this shared google drive folder:- Save your tune using
saveTrack
at the end of your code. - Rename your
.wav
file with a short, unique descriptive name that begins with your CS account names. For example,ww16_astracks_blues.wav
. - Drag your properly named file into the shared google drive folder by Tue Sep 10 at 23:00.
- Save your tune using
-
Upload each of your task files via the Potluck server by the deadline (Tue Sep 10 at 23:00). Click on "Browse..." for the task that you're submitting, then once you've chosen your file, enter your time estimate and click on "Submit task". In the file you're submitting, remember to fill in the authors (including you and your partner if you worked with a partner), the names of people you consulted (other than your partner), the date, and the file's purpose.
- For turtleScene, each team member must submit their
final
scene.py
file. It is not sufficient for your teammate to submit this task, you must both submit it independently, or you will not get credit. - For wavesynthTune, each team member must submit their
final
tune.py
file. It is not sufficient for your teammate to submit this task, you must both submit it independently, or you will not get credit. - For debugMathPractice, each team member must submit their
final
mathPractice.py
file. It is not sufficient for your teammate to submit this task, you must both submit it independently, or you will not get credit.
- For turtleScene, each team member must submit their
final
-
Double-check the status of your submitted tasks (you may have to wait a minute or two after uploading). The server will identify any serious problems with your submission, and you should fix these. In general, always make sure that your task files run without errors in Thonny before submitting them.
-
Failure to submit a code file before the deadline will result in zero credit for that code on project01. (If you do get a zero, you may always take advantage of the revision period to get a better score).
-
Note that you can submit as many times as you like, and we will only grade the last version you submit before the deadline, so it's a good idea to submit several times as you work on the assignment as a backup in case you accidentally lose your work: we can help you recover a file that you've submitted to the server.
-
If you encounter any trouble submitting via the Potluck server, please email Peter Mawhorter with a copy of the files you're trying so submit so that we have a record of your submission if the submission server is running into issues.
- You can, check your score on the dashboard of the Potluck server after you submit. If you scored below 100/100 on any task (even if you didn't turn in anything), you may submit a revision by the revision deadline to improve your score.